package cn.dkdoo.utils.annotation;

import org.springframework.transaction.annotation.Propagation;

import java.lang.annotation.*;

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface DkdTransactional {

    /**
     * 事务隔离级别
     * REQUIRED          如果当前有事物，则沿用；如果当前没有事物，则新建一个事物
     * REQUIRES_NEW      如果当前有事物，则挂起；如果当前没有事物，则新建一个事物  todo-nicky  如果默认的template回滚不支持或效率不好，则发放级别自定义
     * NOT_SUPPORTED     非事物方式运行
     */
    Propagation propagation() default Propagation.REQUIRED;
}
